12 - Advanced Design and Programming [ID:12689]
50 von 776 angezeigt

Wir haben jetzt zuletzt uns von sehr einfachen, einfachen, aber wichtigen Aspekten wie Methodentypen

durchgearbeitet zu etwas höherwertigen Entwurfskonzepten, wie zum Beispiel Entwurfsmustern, insbesondere

weil viele Leute, die das Entwurfsmusterbuch, das Gang of Four Book kennen, halt meinen,

das ist es dann, habe ich halt zwei Muster vorgestellt, Typobjekt und Wertobjekt, die

eben nicht in diesem Buch zu finden sind, um auch noch mal klar zu machen, dass das ein

deutlich weiteres Konzept ist. Auch Sie können in Ihrer Arbeit irgendwann mit wachsender Erfahrung

vielleicht neue Muster erkennen, die man bis dato gar nicht kannte. Und wir gehen jetzt

in der Abstraktion oder in dem Ausprägen Ihrer sprachlichen Fähigkeiten effizient

über Entwurf und Implementierung zu reden, noch mal einen Schritt weiter, von einem einzelnen

Muster hin zu mehreren Mustern im Zusammenhang. Dafür habe ich ein sehr gut abgegrenztes

Gebiet gewählt, nämlich die Objekterzeugung. Was wir heute sehen werden, ist, wie verschiedene

Muster mit Vor- und Nachteilen gegeneinander aufgewogen werden können, um dann für eine

konkrete Situation die vielleicht angemessenste oder beste Entwurfsentscheidung zu treffen.

Unser Ziel wird also sein, Objekte zu erzeugen und dafür schauen wir uns diese fünf unterschiedlichen

Varianten an. Das erste, die erste ist kein Muster oder wird nicht als Muster wahrgenommen,

allenfalls ist ein Programmieridium, das bekannte Switch-Case-Statement und danach folgen vier

immer komplizierte werdende Muster. Wir werden sehen, wie zunehmende Komplexität manchmal

notwendig ist, um Probleme oder Herausforderungen in der Aufgabe, nämlich des Erzeugens der

Objekte, dann auch tatsächlich abzuarbeiten. Am Ende stellen wir es dann mal alles nebeneinander,

um dann quasi im Vergleich festhalten zu können, wie sich diese unterscheiden. Also, unsere

Herausforderung hier ist Erzeugung eines Objektes und ich habe mir ein sehr einfaches Beispiel

genommen und stelle sich vor, Sie haben einen Laptop vor sich und Sie können Anwendung starten

oder Sie können Dokumente öffnen. Wenn Sie Dokumente öffnen, dann haben Sie ja erstmal

vielleicht mit Doppelklick auf eine Datei die Herausforderung überhaupt die zugehörige

Anwendung über einen Type oder so zu finden und in Abhängigkeit davon werden jeweils

Objekte erzeugt. Hier ist die, eine einfache Illustration. Es gibt halt die Kernklassen,

Anwendung und Dokument und das sind die Oberklassen von unterschiedlichen Anwendungen und unterschiedlichen

Dokumenten. Ich habe hier quasi LibreOffice, OpenOffice nachmodelliert. Es gibt Writer,

das ist wie Microsoft Word, Calc, das ist wie Microsoft Excel und Impress, das ist wie

Microsoft PowerPoint, halt die LibreOffice Varianten und jeweils dazu gehört ein Objekt,

das das bearbeitete Dokument, Text, Spreadsheet, Präsentation repräsentiert. Wichtig ist

hier, dass für die Einbettung in den Desktop diese jeweiligen Klassen alle eine Oberklasse,

eine generische Oberklasse Anwendung und Dokument haben. So würde man es üblicherweise in einem

objektorientierten Rahmenwerk machen, das in einen Desktop eingebunden ist. Desktop

hier ist der Client, Client an sich, der jetzt entweder das Anwendung startet, dann noch

ohne Dokument oder ein Dokument öffnet oder erzeugt, um dann die zugehörige Anwendung

zu finden. Und ganz rechts noch, weil wir das als Information brauchen, halt die Idee,

dass Dokumente aus Dateien geladen werden und das Dateien einen Typ haben, und damit

können wir jetzt arbeiten, um in Abhängigkeit voneinander diese Objekte zu erzeugen. Wenn

Wenn wir das jetzt gleich machen, müssen wir hier irgendwie bewerten, nehmen wir eine

Factory Method, nehmen wir eine abstrakte Fabrik oder schreiben wir einfach New hin und das

sind die Kriterien.

Für die Bewertung, wie einfach ist der Code lesbar, wie gut ist er verständlich, wie

einfach ist er zu ändern, wie einfach kann er erweitert werden.

So, erstes Beispiel.

Der Benutzer klickt auf eine Datei, das heißt wir haben erstmal nur den Dateinamen, noch

kein Objekt und müssen jetzt zu einem Dateinamen wie mein spreadsheet.ods aus dieser einfachen

Information herausfinden, welches Objektart, nämlich ein spreadsheet Objekt erzeugt werden

muss.

Das heißt wir wollen eigentlich gehen vom File Typ, kann meinem Type sein, ich mache

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:08:26 Min

Aufnahmedatum

2020-01-20

Hochgeladen am

2020-01-20 21:59:02

Sprache

de-DE

Tags

application mapping filetype class design structure programming public appclasses configuration
Einbetten
Wordpress FAU Plugin
iFrame
Teilen